package com.woniu.smallmedical.server;

import com.woniu.smallmedical.entity.*;

import java.util.Date;
import java.util.List;

public interface CostServer {
    /**
     * 查询获取缴费订单类型
     *
     * @return
     */
    public List<OrderType> getAllOrderType();

    /**
     * 查询总条数
     *
     * @param cost
     * @param costTimeStart
     * @param costTimeEnd
     * @return
     */
    public int getCostCount(Cost cost, String costTimeStart, String costTimeEnd);

    /**
     * 查询费用表
     *
     * @param cost
     * @param costTimeStart 缴费订单起始时间
     * @param costTimeEnd   缴费订单结束时间
     * @return
     */
    public List<Cost> getAllCost(Cost cost, String costTimeStart, String costTimeEnd, int pageIndex, int pageSize);

    /**
     * 通过患者Id查询患者
     *
     * @param patienId
     * @return
     */
    public PatientInformation getPatienById(String patienId);

    /**
     * 通过患者编号查询患者
     *
     * @param patientnumber
     * @return
     */
    public PatientInformation getPatientByNumber(int patientnumber);

    /**
     * 查询医生
     *
     * @param userId
     * @return
     */
    public User getUserById(int userId);

    /**
     * 查询科室
     *
     * @param did
     * @return
     */
    public Department getDepById(int did);

    /**
     * 通过处方Id查询出患者的挂号Id
     * @param prid
     * @return
     */
    public Prescription getByPrescriptionId(Integer prid);

    /**
     * 根据患者挂号id查询挂号信息
     *
     * @param rid
     * @return
     */
    public Registration getRegByPatId(int rid);

    /**
     * 根据接诊Id查询接诊类型
     *
     * @param receptiontypeid
     * @return
     */
    public Receptiontype getReceptiontypeById(int receptiontypeid);

    /**
     * 根据患者挂号Id查询处方表Id
     * @param rid
     * @return
     */
    public Prescription getPrescriptionById(int rid);

    /**
     * 根据处方Id查询处方详情
     * @param prid
     * @return
     */
    public List<PrescriptionDetails> getPrescriptionDetailsById(int prid);

    /**
     * 根据患者处方id修改缴费状态（已缴费）
     * @param prid
     */
    public void updatePayStateByPrid(int prid);

    /**
     * 根据患者处方id修改缴费类型
     * @param prid
     * @param orderTypeId
     */
    public void updateOrderType(int prid,int orderTypeId);


    /**
     * 根据库存Id修改药品库存数量
     * @param inid
     * @param count
     */
    public void updateInvenCountById(Integer inid, Integer count);

    /**
     * 根据处方id添加cost表的缴费时间
     * @param prid
     * @param costTime
     */
    public void updateCostTime(Integer prid, Date costTime);

    /**
     * 添加缴费的总金额、单号、患者Id，处方Id
     * @param cost
     */
    public void insertIntoCost(Cost cost);

    /**
     * 所有处方
     * @return
     */
    public List<Prescription> getAllPrescription();

    public Cost getCosts(Integer prid);

    public void updatePayId(Integer payMethodId,Integer prid);

}
